56624a200ddc511a15026ab4a5ad42d4aab88b9f,GeneticRiskScoreCalculator/src/main/java/nl/systemsgenetics/simplegeneticriskscorecalculator/CalculateSimpleGeneticRiskScore.java,CalculateSimpleGeneticRiskScore,calculate,#RandomAccessGenotypeData#HashMap#File#number#number#boolean#,34
Before Change
double or = riskE.getOr();
int direction = -1;
if (!(riskE.getAllele().equals(var1.getRefAllele().toString()) || riskE.getAllele().equals(var1.getRefAllele().getComplement().toString()))) {
direction = 1;
}
After Change
HashSet<String> excludeList = new HashSet<String>();
//Here we need to change the loop.
for (double pVal : pValueThreshold){
String key = "_P" + pVal;
THashMap<String, ArrayList<RiskEntry>> riskScorePheno2 = riskScorePheno.getValue().get(key);
String NameOfEntry = riskScorePheno.getKey() + key;
int rowNr = scores.getHashRows().get(NameOfEntry);
try {
TextFile out = null;
if (debugMode) {
System.out.println(NameOfEntry);
out = new TextFile(outputFolder + File.separator + NameOfEntry + "Chr" + chrOrder[counter] + ".log", TextFile.W);
out.write("SNPs used for GRS calculation:\n");
}
int nrSNPs = 0;
// System.out.println("Processing chromosome:\t" + chrOrder[counter]);
if (riskScorePheno2.containsKey(chrOrder[counter])) {
ArrayList<RiskEntry> valueE2 = riskScorePheno2.get(chrOrder[counter]);
int nrSNPsThisChr = valueE2.size();
boolean[] excludeSNPs = new boolean[nrSNPsThisChr];
//Get the original entries back, so we are sure we dont need to do to many look ups.
if (excludeList.size() > 0) {
for (int snp = 0; snp < nrSNPsThisChr; snp++) {
if (excludeList.contains(valueE2.get(snp).getRsName())) {
excludeSNPs[snp] = true;
}
}
}
//Actual scoring.
for (int snp = 0; snp < nrSNPsThisChr; snp++) {
if (!excludeSNPs[snp]) {
RiskEntry riskE = valueE2.get(snp);
//System.out.println(snpID + "\t" + c + "\t" + chrPos + "\t" + object.doubleValue);
GeneticVariant var1 = genotypeData.getSnpVariantByPos(riskE.getChr(), riskE.getPos());
//Check if at least 75% of the sampels have information for the SNP otherwise it is removed by default.
if (var1.getCallRate() < 0.75) {
excludeSNPs[snp] = true;
excludeList.add(riskE.getRsName());
continue;
}
if (debugMode) {
out.write(riskE.InfoToString() + "\n");
}
double or = riskE.getOr();
int direction = -1;
if (!(riskE.getAllele()==(var1.getRefAllele().getAlleleAsSnp()) || riskE.getAllele() == (var1.getRefAllele().getComplement().getAlleleAsSnp()))) {
direction = 1;
}